Programmable logic controllers (PLC's, or programmable controllers) are common in industrial manufacturing facilities for control of various types of manufacturing equipment and plant or process equipment. Programmable controllers can be used as "stand-alone" controllers, in which the PLC itself is the primary control intelligence of the system, or can be used in cooperation with a more powerful computing or control system. In the machine tool industry, programmable controllers are often mated with a host computer numerical controller (CNC), which performs the calculation intensive tool path tasks that are necessary to properly control the associated machine tool in real time.
Programmable controllers typically contain a set of logical instructions within their user-definable program. Such instructions are user-changeable, and typically include instructions to determine the value of certain physical inputs, perform logical and numeric calculations based upon that information, perform certain time-dependent or count-dependent operations based on that information, and to determine the proper value of certain physical outputs which are controlled by the PLC. An example of an exemplary programmable controller known in the art is disclosed in U.S. Pat. No. 4,486,830 by Taylor, Jr. et al.
The user-definable program of a PLC must be periodically reviewed or "scanned" so that the value of internal variables that are associated with inputs can be determined and updated, and also so that the value of the associated outputs can be controlled, as required by the results of any mathematical or logical equations. In common PCL's, the user-definable program is scanned in a manner dictated by the results of the PLC's user-definable program. After the scan has been completed, the outputs of the PLC can be set to their proper values. Typically, PLC's do not communicate directly with the input and output equipment via address or data buses, but instead have special serial or parallel communication paths between the equipment installed in the input/output (I/O) racks which hold a bus adaptor, the physical input interfaces (which typically contain several physical inputs each), and physical output interfaces (which typically contain several physical outputs each). Only after a complete scan of the user-definable program has been completed do the PLC's attempt to change any output values by sending down messages to their associated I/O racks.
PLC systems available heretofore can only update their associated outputs with new information at a maximum rate of once per "scan" cycle of the PLC's user-definable program. The amount of time required to perform a complete scan of the user-definable program is dependent upon the scanning rate and the size of the user-definable program used in a given PLC. Typical times for such a single scan often fall within the range of 25 to 50 ms for the more complex applications that are used in controlling machine tools.
In a machine tool application wherein a host CNC is associated with a PLC, the PLC still works along the general lines described above, communicating with its inputs and outputs via communication paths to interfaces on I/O racks. In such systems, the CNC will perform the tool path calculations and the PLC will perform many, if not most, of the binary calculations. The PLC in such systems is the device that directly controls many of the physical binary outputs (two-state "on" or "off" outputs) used to control devices such as tool changer mechanisms and pallet shuttles, or the like. In smaller (less complex) systems, the PLC can perform all of the above calculations (both analog and binary), thereby eliminating the need for a host CNC.
Systems heretofore using PLC equipment have not been capable of controlling their outputs in response to certain changes in any of the associated inputs in less time than one scan cycle. Since an entire scan cycle of the user-definable program must be completed before the PLC could implement changes, the associated outputs could also only change value at the end of at least one of such scan cycles which did not commence until after the associated inputs which control those outputs have changed state. This timing limitation exists even in systems using CNC equipment, since as the CNC communicates with its associated PLC, the PLC must then scan the input portion of the input/output table of its user-definable program for changes of value in any of its equations (due to state changes in physical inputs, for example) before "deciding" that the PLC should change the value of any of its outputs. The CNC, operating as a host computer to the overall system, cannot force the PLC to perform its scanning cycle and its output updating routines in less time than the PLC is capable. In modern day applications requiring ever increasing speed and complexity, such limitations are a substantial roadblock to efficiency and increased production.